package vista;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.table.AbstractTableModel;
import javax.swing.SwingUtilities;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class VentanaOrden extends javax.swing.JFrame {
        

        private JPanel jPanOrden;
        private JButton jbtnRegistrar;
        private JLabel jlblCategoria;
        private JSeparator jSeparator3;
        private JTextField jtxtTelefono;
        private JLabel jlblTelefono;
        private JTextField jtxtDireccion;
        private JLabel jlblDireccion;
        private JSeparator jSeparator2;
        private JSeparator jSeparator1;
        private JFormattedTextField jFormTxtPedido;
        private JButton jbtnBuscar;
        private JLabel jLabel1;
        private JTextField jtxtCedula;
        private JTextField jtxtApellido;
        private JTextField jtxtTotalPagar;
        private JLabel jlbApellido;
        private JButton jbtnImagen;
        private JButton jbtnIngresarProductoTabla;
        private JButton jbtnSalir;
        private JButton jbtnCancelar;
        private JTable jTableOrdenProducto;
        private JScrollPane jScrollPaneOrdenProducto;
        private JSeparator jSeparator5;
        private JSeparator jSeparator4;
        private JComboBox jcmbCategoriaOrden;
        private JTextField jtxtNombreCli;
        private JLabel lblNombreCli;
        private JFormattedTextField jFormtxtCliente;
        private JTextField jtxtCodOrden;
        private JLabel jlblCodOrden;
        private JTextField jtxtCodProductoOrden;
        private JComboBox jcmbProductoOrden;
        private JTextField jtxtcodcategoria;
        private JLabel jlblSelecProducto;
        private JLabel jlblfechaorden;
        private JTextField jtxtFechaOrden;
        private JButton jbtnProcesar;
        private JLabel jlbltotalpagar;
        
        

        /**
        * Auto-generated main method to display this JFrame
        */
        public static void main(String[] args) {
                SwingUtilities.invokeLater(new Runnable() {
                        public void run() {
                                VentanaOrden inst = new VentanaOrden();
                                inst.setLocationRelativeTo(null);
                                inst.setVisible(true);
                        }
                });
        }
        
        public VentanaOrden() {
                super();
                initGUI();
        }

        private void initGUI() {
                try {
                        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
                        getContentPane().setLayout(null);
                        getContentPane().setBackground(new java.awt.Color(82,209,232));
                        {
                                jPanOrden = new JPanel();
                                getContentPane().add(jPanOrden);
                                jPanOrden.setBounds(12, 12, 550, 753);
                                jPanOrden.setLayout(null);
                                jPanOrden.setBackground(new java.awt.Color(255,255,255));
                                {
                                        jlblCodOrden = new JLabel();
                                        jPanOrden.add(jlblCodOrden);
                                        jlblCodOrden.setText("Nro. Orden:");
                                        jlblCodOrden.setBounds(333, 103, 84, 20);
                                }
                                {
                                        jtxtCodOrden = new JTextField();
                                        jPanOrden.add(jtxtCodOrden);
                                        jtxtCodOrden.setBounds(417, 103, 73, 21);
                                }
                                {
                                        jFormtxtCliente = new JFormattedTextField();
                                        jPanOrden.add(jFormtxtCliente);
                                        jFormtxtCliente.setText("Nuestro Cliente");
                                        jFormtxtCliente.setBounds(12, 160, 505, 21);
                                        jFormtxtCliente.setBackground(new java.awt.Color(82,209,232));
                                        jFormtxtCliente.setEditable(false);
                                }
                                {
                                        lblNombreCli = new JLabel();
                                        jPanOrden.add(lblNombreCli);
                                        lblNombreCli.setText("Nombre:");
                                        lblNombreCli.setBounds(12, 232, 86, 14);
                                }
                                {
                                        jtxtNombreCli = new JTextField();
                                        jPanOrden.add(jtxtNombreCli);
                                        jtxtNombreCli.setBounds(116, 229, 122, 21);
                                }
                                {
                                        jlbApellido = new JLabel();
                                        jPanOrden.add(jlbApellido);
                                        jlbApellido.setText("Apellido:");
                                        jlbApellido.setBounds(12, 261, 86, 14);
                                }
                                {
                                        jtxtApellido = new JTextField();
                                        jPanOrden.add(jtxtApellido);
                                        jtxtApellido.setBounds(116, 258, 122, 21);
                                }
                                {
                                        jtxtCedula = new JTextField();
                                        jPanOrden.add(jtxtCedula);
                                        jtxtCedula.setBounds(116, 199, 122, 21);
                                }
                        
                        {
                                jbtnRegistrar = new JButton();
                                jPanOrden.add(jbtnRegistrar);
                                jbtnRegistrar.setText("Registrar");
                                jbtnRegistrar.setBounds(305, 245, 80, 22);
                                jbtnRegistrar.setBackground(new java.awt.Color(82,209,232));
                                jbtnRegistrar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
                        }
                        {
                                jLabel1 = new JLabel();
                                jPanOrden.add(jLabel1);
                                jLabel1.setText("C.I:");
                                jLabel1.setBounds(12, 202, 92, 14);
                        }
                        {
                                jbtnBuscar = new JButton();
                                jPanOrden.add(jbtnBuscar);
                                jbtnBuscar.setText("Buscar");
                                jbtnBuscar.setBounds(305, 204, 80, 22);
                                jbtnBuscar.setBackground(new java.awt.Color(82,209,232));
                                jbtnBuscar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
                        }
                        {
                                jFormTxtPedido = new JFormattedTextField();
                                jPanOrden.add(jFormTxtPedido);
                                jFormTxtPedido.setText("Orden de Nuestro Cliente");
                                jFormTxtPedido.setBounds(12, 383, 505, 22);
                                jFormTxtPedido.setBackground(new java.awt.Color(82,209,232));
                                jFormTxtPedido.setEditable(false);
                        }
                        {
                                jSeparator1 = new JSeparator();
                                jPanOrden.add(jSeparator1);
                                jSeparator1.setBounds(12, 372, 512, 11);
                                jSeparator1.setBackground(new java.awt.Color(28,209,232));
                        }
                        {
                                jSeparator2 = new JSeparator();
                                jPanOrden.add(jSeparator2);
                                jSeparator2.setBounds(12, 143, 512, 11);
                                jSeparator2.setBackground(new java.awt.Color(28,209,232));
                        }
                        {
                                jlblDireccion = new JLabel();
                                jPanOrden.add(jlblDireccion);
                                jlblDireccion.setText("Dirección:");
                                jlblDireccion.setBounds(12, 295, 85, 15);
                        }
                        {
                                jtxtDireccion = new JTextField();
                                jPanOrden.add(jtxtDireccion);
                                jtxtDireccion.setBounds(115, 292, 123, 22);
                        }
                        {
                                jlblTelefono = new JLabel();
                                jPanOrden.add(jlblTelefono);
                                jlblTelefono.setText("Telefono:");
                                jlblTelefono.setBounds(12, 329, 85, 15);
                        }
                        {
                                jtxtTelefono = new JTextField();
                                jPanOrden.add(jtxtTelefono);
                                jtxtTelefono.setBounds(115, 326, 123, 22);
                        }
                        {
                                jSeparator3 = new JSeparator();
                                jPanOrden.add(jSeparator3);
                                jSeparator3.setBounds(277, 196, 22, 164);
                                jSeparator3.setOrientation(SwingConstants.VERTICAL);
                                jSeparator3.setBackground(new java.awt.Color(28,209,232));
                        }
                        {
                                jlblCategoria = new JLabel();
                                jPanOrden.add(jlblCategoria);
                                jlblCategoria.setText("Seleccione la categoría:");
                                jlblCategoria.setBounds(60, 426, 193, 15);
                        }
                        {
                                jcmbCategoriaOrden = new JComboBox();
                                jPanOrden.add(jcmbCategoriaOrden);
                                jcmbCategoriaOrden.setBounds(60, 448, 171, 22);
                                jcmbCategoriaOrden.setBackground(new java.awt.Color(82,209,232));
                                jcmbCategoriaOrden.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
                        }
                
                        {
                                jSeparator4 = new JSeparator();
                                jPanOrden.add(jSeparator4);
                                jSeparator4.setBounds(12, 417, 512, 3);
                                jSeparator4.setBackground(new java.awt.Color(28,209,232));
                        }
                        {
                                jSeparator5 = new JSeparator();
                                jPanOrden.add(jSeparator5);
                                jSeparator5.setBounds(12, 187, 512, 10);
                                jSeparator5.setBackground(new java.awt.Color(28,209,232));
                        }
                        {
                                //Instanciamos el contenedor de la tabla
                                jScrollPaneOrdenProducto = new JScrollPane();
                                jPanOrden.add(jScrollPaneOrdenProducto);
                                jScrollPaneOrdenProducto.setBounds(73, 528, 418, 119);
                        }
                        {
                                jbtnCancelar = new JButton();
                                jPanOrden.add(jbtnCancelar);
                                jbtnCancelar.setText("Cancelar");
                                jbtnCancelar.setBounds(334, 706, 69, 22);
                                jbtnCancelar.setBackground(new java.awt.Color(82,209,232));
                        }
                        {
                                jbtnSalir = new JButton();
                                jPanOrden.add(jbtnSalir);
                                jbtnSalir.setText("Salir");
                                jbtnSalir.setBounds(420, 706, 72, 22);
                                jbtnSalir.setBackground(new java.awt.Color(82,209,232));
                        }
                        {
                                jbtnIngresarProductoTabla = new JButton();
                                jPanOrden.add(jbtnIngresarProductoTabla);
                                jbtnIngresarProductoTabla.setText("Cargar Productos ");
                                jbtnIngresarProductoTabla.setBounds(238, 495, 147, 22);
                                jbtnIngresarProductoTabla.setBackground(new java.awt.Color(82,209,232));
                                jbtnIngresarProductoTabla.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
                        }
                        {
                                
                                jcmbProductoOrden = new JComboBox();
                                jPanOrden.add(jcmbProductoOrden);
                                jcmbProductoOrden.setBounds(61, 495, 165, 22);
                                jcmbProductoOrden.setBackground(new java.awt.Color(82,209,232));
                                jcmbProductoOrden.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
                        }
                        {
                                jlblSelecProducto = new JLabel();
                                jPanOrden.add(jlblSelecProducto);
                                jlblSelecProducto.setText("Seleccione el producto:");
                                jlblSelecProducto.setBounds(61, 474, 159, 15);
                        }
                        {
                                jtxtcodcategoria = new JTextField();
                                jPanOrden.add(jtxtcodcategoria);
                                jtxtcodcategoria.setBounds(223, 406, 55, 22);
                                jtxtcodcategoria.setEditable(false);
                                jtxtcodcategoria.setVisible(false);
                        }
                        {
                                jtxtCodProductoOrden = new JTextField();
                                jPanOrden.add(jtxtCodProductoOrden);
                                jtxtCodProductoOrden.setBounds(410, 449, 55, 22);
                                jtxtCodProductoOrden.setVisible(false);
                                jtxtCodProductoOrden.setEditable(false);
                        }
                        {
                                jlbltotalpagar = new JLabel();
                                jPanOrden.add(jlbltotalpagar);
                                jlbltotalpagar.setText("Total a Pagar (BsF):");
                                jlbltotalpagar.setBounds(287, 660, 124, 14);
                        }
                        {
                                jtxtTotalPagar = new JTextField();
                                jPanOrden.add(jtxtTotalPagar);
                                jtxtTotalPagar.setBounds(423, 657, 69, 21);
                                jtxtTotalPagar.setEditable(false);
                        }
                        {
                                jbtnImagen = new JButton();
                                jbtnImagen.setIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen.jpg")));
                                jPanOrden.add(jbtnImagen);
                                jbtnImagen.setBounds(36, 6, 181, 132);
                                jbtnImagen.setBackground(new java.awt.Color(82,209,232));
                                jbtnImagen.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
                        }
                        {
                                //Instanciamos la tabla en donde aparecen los productos
                                jTableOrdenProducto = new JTable();
                                //jPanOrden.add(jTableOrdenProducto);
                                jTableOrdenProducto.setBounds(48, 535, 459, 102);
                                //agregamos una tabla al contenedor con un scroll
                                jScrollPaneOrdenProducto.add(jTableOrdenProducto);
                        }
                        {
                                jbtnProcesar = new JButton();
                                jPanOrden.add(jbtnProcesar);
                                jbtnProcesar.setText("Procesar");
                                jbtnProcesar.setBounds(403, 496, 108, 21);
                                jbtnProcesar.setBackground(new java.awt.Color(82,209,232));
                        }
                        {
                                jtxtFechaOrden = new JTextField();
                                jPanOrden.add(jtxtFechaOrden);
                                jtxtFechaOrden.setBounds(417, 71, 73, 21);
                        }
                        {
                                jlblfechaorden = new JLabel();
                                jPanOrden.add(jlblfechaorden);
                                jlblfechaorden.setText("Fecha:");
                                jlblfechaorden.setBounds(333, 74, 63, 14);
                        }
                        {
                                jbtnCancelar = new JButton();
                                jPanOrden.add(jbtnCancelar);
                                jbtnCancelar.setText("Cancelar");
                                jbtnCancelar.setBounds(305, 289, 80, 21);
                                jbtnCancelar.setBackground(new java.awt.Color(82,209,232));
                                jbtnCancelar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
                        }

                        }
                        pack();
                        this.setSize(578, 813);
                } catch (Exception e) {
                    //add your error handling code here
                        e.printStackTrace();
                }
        }
        

        //Ingresa los producto de la clase que hereda de AbstractTableModel
        public void IngresarProductos(AbstractTableModel abstractTableModel) {
                jTableOrdenProducto.setModel(abstractTableModel);

                jTableOrdenProducto.addMouseListener(new MouseAdapter()
          {
                      public void mouseClicked(MouseEvent e) 

                      {
                         int fila = jTableOrdenProducto.rowAtPoint(e.getPoint());

                         int columna = jTableOrdenProducto.columnAtPoint(e.getPoint());

                         if ((fila > -1) && (columna > -1));

                           // System.out.println(modelo.getValueAt(fila,columna));

                      }
                   });
        
        }
        
        public void addListener(ActionListener actionListener) {
                this.jcmbCategoriaOrden.addActionListener(actionListener);
                this.jcmbProductoOrden.addActionListener(actionListener);
                this.jbtnBuscar.addActionListener(actionListener);
                this.jbtnRegistrar.addActionListener(actionListener);
                this.jbtnCancelar.addActionListener(actionListener);
                this.jbtnIngresarProductoTabla.addActionListener(actionListener);
                this.jbtnSalir.addActionListener(actionListener);
                this.jbtnProcesar.addActionListener(actionListener);
                this.jbtnCancelar.addActionListener(actionListener);
        }
        

        public void setcargarComboCategoria(List<String> categorias) {
        ComboBoxModel jcmbCategoriaOrdenModelModel =
            new DefaultComboBoxModel(categorias.toArray());
        jcmbCategoriaOrden.setModel(jcmbCategoriaOrdenModelModel);
        }
        
        public void setcargarComboProducto(List<String> productos) {
        ComboBoxModel jcmbProductoOrdenModelModel =
            new DefaultComboBoxModel(productos.toArray());
        jcmbProductoOrden.setModel(jcmbProductoOrdenModelModel);
        }
       
		public void setJtxtTelefono(String jtxtTelefono) {
			this.jtxtTelefono.setText(jtxtTelefono);
		}

		public String getTelefono() {
                return jtxtTelefono.getText();
        }

        public String getDireccion() {
                return jtxtDireccion.getText();
        }

        public String getCedulaCli() {
                return jtxtCedula.getText();
        }

        
        public String getApellido() {
                return jtxtApellido.getText();
        }

        public String getNombre() {
                return jtxtNombreCli.getText();
        }

        public String getCodOrden() {
                return jtxtCodOrden.getText();
        }

        public void setJtxtCodOrden(String jtxtCodOrden) {
                this.jtxtCodOrden.setText(jtxtCodOrden);
        }
        
        
        public String getCodProductoOrden() {
                return jtxtCodProductoOrden.getText();
        }

        public void setJtxtCodProductoOrden(String valor3) {
                this.jtxtCodProductoOrden.setText(valor3);
        }

        public String getJtxtcodcategoria() {
                return jtxtcodcategoria.getText();
        }

        public void setJtxtcodcategoria(String valor0) {
                this.jtxtcodcategoria.setText(valor0);
        }
        
        public void setJtxtDireccion(String jtxtDireccion) {
                this.jtxtDireccion.setText(jtxtDireccion);
        }

        public void setJtxtCedula(String jtxtCedula) {
                this.jtxtCedula.setText(jtxtCedula);
        }

        public void setJtxtApellido(String jtxtApellido) {
                this.jtxtApellido.setText(jtxtApellido);
        }

        public String getTotalPagar() {
                return jtxtTotalPagar.getText();
        }

        public void setJtxtTotalPagar(String jtxtTotalPagar) {
                this.jtxtTotalPagar.setText(jtxtTotalPagar);
        }

        public void setJtxtNombreCli(String jtxtNombreCli) {
                this.jtxtNombreCli.setText(jtxtNombreCli);
        }

        public String getFechaOrden() {
                return jtxtFechaOrden.getText();
        }

        public void setJtxtFechaOrden(String jtxtFechaOrden) {
                this.jtxtFechaOrden.setText(jtxtFechaOrden);
        }

        public JTable getjTableOrdenProducto() {
                return jTableOrdenProducto;
        }

        //Para retornar el texto del comboo!!!
        public String getJcmbCategoriaOrden() {
                return jcmbCategoriaOrden.getSelectedItem().toString();
        }

        public String getJcmbProductoOrden() {
                return jcmbProductoOrden.getSelectedItem().toString();
        }
        
        public void mostrarMensaje(String mensaje) {
                JOptionPane.showMessageDialog(this, mensaje);
        }
        
        public void borrarDatos (){
                jtxtCedula.setText("");
                jtxtNombreCli.setText("");
                jtxtApellido.setText("");
                jtxtDireccion.setText("");
                jtxtTelefono.setText("");
                jtxtCodOrden.setText("");
                jtxtFechaOrden.setText("");
                jtxtCedula.setEditable(true);
                jtxtNombreCli.setEditable(true);
                jtxtApellido.setEditable(true);
                jtxtDireccion.setEditable(true);
                jtxtTelefono.setEditable(true);
        }
        
        public void CamposNoEditables(){
                jtxtCedula.setEditable(false);
                jtxtNombreCli.setEditable(false);
                jtxtApellido.setEditable(false);
                jtxtDireccion.setEditable(false);
                jtxtTelefono.setEditable(false);
        }
}
